package cn.tedu.online.examination.system.ui;

import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.net.URL;

/**
 * 一、欢迎界面
 * 1、加载欢迎图片
 * 2、居中显示
 * 3、定时消失跳转登陆界面（在客户端控制中实现）
 * @author JokerQ
 * @date 2020/6/9 - 17:29
 */
public class WelcomeWindow extends JFrame {
    public WelcomeWindow(){
        this.setSize(1342,939);
        /**
         * BorderLayout
         * 边界布局勾画出一个集装箱，安排和调整其成分放在五个区域：北，南，东，西，和中心。
         * 每个地区可能不包含多个组件，并通过相应的常数确定： NORTH， SOUTH， EAST， WEST，和 CENTER。
         * 一个边界布局容器中添加组件时，使用这五个常数
         */
        JPanel jPanel = new JPanel(new BorderLayout());
        //JPanel jPanel = new JPanel();
        /**
         * ImageIcon
         * 图标界面的图片是油漆图标的实现。
         * 个从一个URL，文件名或字节数组创建的图像是使用媒体跟踪预加载以监视图像的加载状态
         */
        ImageIcon imageIcon = new ImageIcon("src/cn/tedu/online/examination/system/img/welcome.png");
        /**
         * JLabel
         * 一个 Label对象是放置在一个容器组件的文本。标签显示只读文本的单行线。
         * 文本可以通过应用程序更改，但用户不能直接编辑它
         * 创建一个具有指定的图像 JLabel实例。
         * 标签以垂直和水平在显示区域为中心。
         */
        JLabel jLabel = new JLabel(imageIcon);
        //jPanel.add(jLabel);
        jPanel.add(BorderLayout.CENTER,jLabel);
        /**
         * setBorder
         * 设置此组件的边框
         */
        jPanel.setBorder(new LineBorder(Color.BLUE));
        this.add(jPanel);
        /**
         * setResizable
         * 设置此窗体是否可由用户调整大小
         */
        this.setResizable(false);
        /**
         * setVisible
         * 显示或隐藏此Window取决于参数的值b
         * b -如果为true ，使Window可见，否则隐藏Window
         */
        this.setVisible(true);
        /**
         * 如果组件是null,窗口放在屏幕的中心
         */
        this.setLocationRelativeTo(null);
        /**
         * setDefaultCloseOperation
         * 设置当用户在此窗体上发起“close”时默认执行的操作
         * DO_NOTHING_ON_CLOSE （定义WindowConstants ）：
         *      不执行任何操作; 所需要的程序来处理在操作windowClosing的注册的方法WindowListener对象。
         * HIDE_ON_CLOSE （定义在WindowConstants ）：
         *      自动隐藏调用任何注册之后的帧WindowListener对象。
         * DISPOSE_ON_CLOSE （定义在WindowConstants ）：
         *      自动隐藏和调用任何注册后处置帧WindowListener对象。
         * EXIT_ON_CLOSE （在定义JFrame ）：
         *      退出使用所述应用System exit方法。 只有在应用程序中使用此功能。
         *
         */
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }


}
